/**
 * 生成随机uuid
 * @param len 长度
 * @param radix 基数
 * @returns uuid
 */
export function getUuid(len = 16, radix = 16) {
  const chars =
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
  const uuid = [];
  let i;
  radix = radix || chars.length;
  if (len) {
    for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
  } else {
    let r;
    uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
    uuid[14] = '4';
    for (i = 0; i < 36; i++) {
      if (!uuid[i]) {
        r = 0 | (Math.random() * 16);
        uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];
      }
    }
  }
  return uuid.join('');
}

export const applicationSlotMap = {
  get(name: string) {
    const _singleSpaAppMap = (window as any)?._singleSpaAppMap as Map<
      string,
      Element
    >;
    return _singleSpaAppMap.get(name);
  },
  set(name: string, el: Element) {
    let _singleSpaAppMap = (window as any)?._singleSpaAppMap as Map<
      string,
      Element
    >;
    if (!_singleSpaAppMap) {
      _singleSpaAppMap = new Map();
    }
    _singleSpaAppMap.set(name, el);
  }
};
